The present invention relates to a method for image processing such as data compression/expansion technique, affine transformation, perspective transformation, and so on, of image data such as three-dimensional (hereinafter referred to as “3D”) graphics data or the like, and a recording medium for image data or programs.
In fields using 3D graphics such as games, movies, etc., there is a tendency that the demands for high-definition high-speed image processing become higher and higher every year. Thus, operation capacity required as image processors and data quantity processed by the image processors have increased year by year.
In such 3D graphics fields, any 3D object is expressed by an assembly of polygons, and image processing is applied to the polygons. As a reference about image processing for polygons, there is a literature “Fundamentals of Interactive Computer Graphics (by J. D. Foley and A. Van Dam)”, PP. 274-279, PP. 505-511, and PP. 552-557 Addison-Wesley Publishing, 1982.
As a system for showing an object expressed by polygons in high definition and smoothly, it is considered to cut the polygons forming the object into smaller parts to thereby increase the number of required polygons. However, the data quantity and the operation quantity increase as the number of polygons is increased.
The increase in operation quantity can be coped with by improving the processing capacity of a processor. On the contrary, for the increase in data quantity, it is necessary to increase the capacity of a recording medium which records image data, or to expand data transfer width (number of parallel transfer data bits) between a memory and the processor, or the like. However, the gap between the data processing capacity of a processor and the data transfer capacity through a bus between an external memory and the processor shows a tendency to expand. Even if the processing capacity of the processor is sufficient, the data transfer capacity through the bus cannot follow the processor. Thus, the data transfer capacity may determine the total data processing performance.
As a background art, there is known a method in which data to be processed by a processor is compressed and stored in a memory or a recording medium in advance, and the compressed data is expanded immediately before the data is processed by the processor. For example, as 3D image data, particularly as a compressed data structure of polygon data, there is known a compression system defined by “JAVA 3D” (3D Geometry Compression in Appendix B of the public data “Java 3D API Specification (Version 1.1.2, June 1999)” in the public homepage
“http://java.sun.com/products/java-media/3D” of SUN MICROSYSTEMS INC.), PP. 1/6-6/6.
In the aforementioned “Java 3D”, some kinds of instructions are made to correspond to individual vertexes forming polygons. These are variable-length instructions. Each of the instructions has data of coordinates, a color, a normal line, etc., of a vertex in the form of a differential value with respect to a point processed previously. The data as a whole is then subjected to variable-length compression. Thus, the transfer time in network communication can be shortened.
However, according to the compression system of “Java 3D”, in order to expand compressed information, it is necessary to reconstitute polygons while interpreting and expanding such instructions sequentially. Because it is necessary to expand the variable-length compressed data sequentially, there is a tendency for the expansion processing to be slow.
In addition, as disclosed in JP-A-11-259680, there is a technique in which polygon differential data with respect to a reference image are made up based on the comparison of two temporally continuous planes of image data so that the data quantity is reduced by storing the differential data with respect to the reference image data. This technique is to reduce the data quantity describing the motion of images, but it is not to reduce the static data quantity of the images.